介紹完了column可以設定的基本格式型態,針對column內部的構造,我們要更詳細地說明一下,以利後續的講解。
column主要由三個部分所構成,如下圖說明:
name
欄位名稱
value
數值的資料型態,是屬於上一篇介紹的其中某種基本格式。
timestamp
時間戳記。
本篇最重要的重點,就是要來跟大家說明column因為有這個時間戳記,會與RDBMS有什麼不同。
在我們RDBMS裡面,如果要update某個row的資料,會立即生效。
但是CASSANDRA/SCYLLA並非如此,而且處理單位是以column為主,在更新資料的時候,系統會直接 寫入一筆新的資料
,原本的舊資料會由系統安排在某個時間點才實際刪除。
有多筆對同樣column更新的操作,就認要寫入的timestamp哪個是最新的時間,直接更新最新的那個操作。
那麼select指定的欄位資料時候,難道不會撈到舊資料嗎?
一樣的原理,CASSANDRA/SCYLLA會提供timestamp是最新的
欄位資料出來喔。
在研究CASSANDRA/SCYLLA的時候,筆者偶爾有看到super column
這個名詞,那這個是什麼呢?原來是一種CASSANDRA舊的欄位格式,在CASSANDRA 2.X之後就不使用了。
SCYLLA 是比較後來新出來的東西,也直接不支援super column,下圖附一張從SCYLLA官網截取的比較圖,大家也可以從這個表格了解一下,CASSANDRA和SCYLLA這方面的差異。